The present specification relates to the field of installing and customizing software for computing devices.
In enterprise computing infrastructures, it is common for multiple computing devices to be interconnected through a network. Many types of software packages exist to provide support for enterprise operations. In many cases, the various features of a software package are selectively deployed to one or more computing devices throughout the computing infrastructure. The process of installing and configuring features from such a software package on one or more computing devices is known as deployment.
Deploying software in an enterprise environment can be difficult using conventional techniques. Software is often deployed for demonstration or proof-of-concept scenarios where only a single person is involved and all the software is deployed to a single computing device. In production environments, many people may be required to carry out the software deployment across the enterprise infrastructure. In the past, optimizing deployment for one scenario would often de-optimize the deployment for other scenarios. Highly automated deployments that work well for demonstration or proof-of-concept scenarios do not work well when the deployment needs to be divided among a number of people, and vice versa.